@codeep
2022-07-13T14:57:47.000000Z
字数 32098
阅读 386152
源文件下载 / Ver. 2022-07-13 / Ver. 2020-10-03本文固定链接 https://ericp.cn/cmd
由于 Cmd Markdown 编辑器及本手册均已放弃维护,最后嵌入版本为 MathJax.js v2.2,可能与当前现代浏览器产生部分不兼容或渲染出错,您可在相关位置批注,我会收到邮件通知并确认更正。
建议您在 Chrome 或 Edge 浏览器中使用 Cmd Markdown 编辑器。
Ver. 2022-07-13
本文为 MathJax 在 Cmd Markdown 环境下的常用语法指引。Cmd Markdown 编辑阅读器支持 编辑显示支持,例如:,访问 MathJax 以参考更多使用方法。
右键点击每一个公式,选择 [Show Math As] → [TeX Commands] 以查看该公式的命令详情。
可使用行中公式放在文中与其它文字混编,或单独成行的独立公式。
$ 表达式 $
$$ 表达式 $$
\tag{编号}
语句。\begin{equation}
表达式
\label{eq:当前公式名}
\end{equation}
自动编号后的公式可在全文任意处使用 \eqref{eq:公式名}
语句引用。
$ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} \text {,行内公式示例} $
显示:
例子:
$$ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} \text{,独立公式示例,使用 \tag 手动编号} \tag{0.1} $$
显示:
例子:
$$ 在公式 \eqref{eq:sample} 中,我们看到了这个被自动编号的公式。$$
\begin{equation}
E=mc^2 \text{,自动编号公式示例}
\label{eq:sample}
\end{equation}
\begin{equation*}
表达式
\end{equation*}
^
表示上标,_
表示下标。如果上下标的内容多于一个字符,需要用 {}
将这些内容括成一个整体。
上下标可以嵌套,也可以同时使用。
$$ x^{y^z}=(1+{\rm e}^x)^{-2xy^w} $$
如果要在左右两边都有上下标,可以使用 \sideset
命令;也可以简单地在符号前面多打一个上下标,此时会以行内公式渲染。
本例内 \quad
均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \sideset{^1_2}{^3_4}\bigotimes \quad or \quad {^1_2}\bigotimes {^3_4} $$
()
、[]
和 |
表示符号本身,使用 \{\}
来表示 {}
。当要显示大号的括号或分隔符时,要用 \left
和 \right
命令。
一些特殊的括号:
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
\langle | \rangle | ||
\lceil | \rceil | ||
\lfloor | \rfloor | ||
\lbrace | \rbrace | ||
\lvert | \rvert | ||
\lVert | \rVert |
@lymd 有时,我们需要在行内使用两个竖杠表示向量间的某种空间距离,可以这样写
\lVert \boldsymbol{X}_i - \boldsymbol{S}_j \rVert^2
→
$$ f(x,y,z) = 3y^2z \left( 3+\frac{7x+5}{1+y^2} \right) $$
有时要用 \left.
或 \right.
进行匹配而不显示本身。
$$ \left. \frac{{\rm d}u}{{\rm d}x} \right| _{x=0} $$
通常使用 \frac {分子} {分母}
来生成一个分数,分数可多层嵌套。
若分数只有一层,也可使用 分子 \over 分母
命令。
例内 \quad
\mid
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \frac{a-1}{b-1} \quad or \quad {a+1 \over b+1} $$
当分式 仅有两个字符时 可直接输入 \frac ab
来快速生成一个 。
$$ \frac 12,\frac 1a,\frac a2 \quad \mid \quad \text{2 letters only:} \quad \frac 12a \,, k\frac q{r^2} $$
使用 \sqrt [根指数,省略时为2] {被开方数}
命令输入开方。
本例内 \quad
均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \sqrt{2} \quad or \quad \sqrt[n]{3} $$
数学公式中常见的省略号有两种,\ldots
表示与 文本底线 对齐的省略号,\cdots
表示与 文本中线 对齐的省略号。
$$ f(x_1,x_2,\underbrace{\ldots}_{\rm ldots} ,x_n) = x_1^2 + x_2^2 + \underbrace{\cdots}_{\rm cdots} + x_n^2 $$
使用 \vec{向量}
来自动产生一个向量。也可以使用 \overrightarrow
等命令自定义字母上方的符号。
例内 \quad
\mid
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \vec{a} \cdot \vec{b}=0 $$
显示:
例子:
$$ xy \text{ with arrows:} \quad \overleftarrow{xy} \; \mid \; \overleftrightarrow{xy} \; \mid \; \overrightarrow{xy} $$
使用 \int_积分下限^积分上限 {被积表达式}
来输入一个积分。
例子:
$$ \int_0^1 {x^2} \,{\rm d}x $$
显示:
本例中 \,
和 {\rm d}
部分可省略,但加入能使式子更美观,详见在字符间加入空格及如何进行字体转换。
使用 \lim_{变量 \to 表达式} 表达式
来输入一个极限。如有需求,可以更改 \to
符号至任意符号。
例子:
$$ \lim_{n \to \infty} \frac{1}{n(n+1)} \quad and \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} $$
显示:
使用 \sum_{下标表达式}^{上标表达式} {累加表达式}
来输入一个累加。与之类似,使用 \prod
\bigcup
\bigcap
来分别输入累乘、并集和交集,更多符号可参考“其它特殊字符”。
此类符号在行内显示时上下标表达式将会移至右上角和右下角,如 \sum_{i=1}^n \frac{1}{i^2}
显示为 ;
或:
@woria 在行内可使用
\sum\limits_{下标表达式}^{上标表达式} {累加表达式}
使上下标仍在正上正下方。
如\sum\limits_{i=1}^n \frac{1}{i^2}
显示为 。
本例内 \quad
均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \sum_{i=1}^n \frac{1}{i^2} \quad and \quad \prod_{i=1}^n \frac{1}{i^2} \quad and \quad \bigcup_{i=1}^{2} \Bbb{R} $$
输入 \小写希腊字母英文全称
和 \首字母大写希腊字母英文全称
来分别输入小写和大写希腊字母。
对于大写希腊字母与现有字母相同的,直接输入大写字母即可。
输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|---|---|
\alpha | A | \beta | B | ||||
\gamma | \Gamma | \delta | \Delta | ||||
\epsilon | E | \zeta | Z | ||||
\eta | H | \theta | \Theta | ||||
\iota | I | \kappa | K | ||||
\lambda | \Lambda | \mu | M | ||||
\nu | N | \xi | \Xi | ||||
o | O | \pi | \Pi | ||||
\rho | P | \sigma | \Sigma | ||||
\tau | T | \upsilon | \Upsilon | ||||
\phi | \Phi | \chi | X | ||||
\psi | \Psi | \omega | \Omega |
部分字母有变量专用形式,以 \var-
开头。
小写形式 | 大写形式 | 变量形式 | 显示 |
---|---|---|---|
\epsilon | E | \varepsilon | |
\theta | \Theta | \vartheta | |
\rho | P | \varrho | |
\sigma | \Sigma | \varsigma | |
\phi | \Phi | \varphi |
完整的 可用符号列表可以在 这份文档 中查阅(极长,共 348 页),大部分常用符号可以参阅 这份精简版文档 查询。需要注意的是, 符号并不保证在 MathJax v2.2 中可用,即在 Cmd Markdown 编辑阅读器中可能并不支持所输入的特定命令。
若需要显示更大或更小的字符,在符号前插入
\large
或\small
命令。
MathJax 针对任意元素均提供从小至大\tiny
\Tiny
\scriptsize
\small
*默认值 \normalsize
\large
\Large
\LARGE
\huge
\Huge
共十种渲染大小,详见官方文档。
输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|---|---|
\pm | \times | \div | \mid | ||||
\nmid | \cdot | \circ | \ast | ||||
\odot | \otimes | \oplus | \leq | ||||
\geq | \neq | \approx | \equiv | ||||
\sum | \prod | \coprod | \backslash |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\emptyset | \in | \notin | |||
\subset | \supset | \subseteq | |||
\supseteq | \cap | \cup | |||
\vee | \wedge | \uplus | |||
\top | \bot | \complement |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\log | \lg | \ln |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\backsim | \cong | \angle A | |||
\sin | \cos | \tan | |||
\csc | \sec | \cot |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\int | \iint | \iiint | |||
\partial | \oint | \prime | |||
\lim | \infty | \nabla |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\because | \therefore | \neg | |||
\forall | \exists | \not\subset | |||
\not< | \not> | \not= |
@xiaobanni
\vdash
显示为
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\hat{xy} | \widehat{xyz} | \bar{y} | |||
\tilde{xy} | \widetilde{xyz} | \acute{y} | |||
\breve{y} | \check{y} | \grave{y} | |||
\dot{x} | \ddot{x} | \dddot{x} |
若需要在特定文字顶部\底部放置内容,可使用 \overset{顶部内容}{正常内容}
和 \underset{底部内容}{正常内容}
命令。
例内 \qquad
\quad
\mid
\;
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \verb+\overset{above}{level}+ \qquad \overset{xx}{ABC} \;\; \mid \quad \overset{x^2}{\longmapsto}\ \, \mid \quad \overset{\bullet\circ\circ\bullet}{T} $$
显示:
例子:
$$ \verb+\underset{below}{level}+ \qquad \underset{xx}{ABC} \;\; \mid \quad \underset{x^2}{\longmapsto}\ \, \mid \quad \underset{\bullet\circ\circ\bullet}{T} $$
此命令可叠加嵌套使用,生成类似化学反应式的多重条件符号,
如 \overset{H_2}{\underset{1300℃}{\Longleftrightarrow}}
:
\overset{Surface/bulk}{\underset{diffusion}{\longleftrightarrow}}
: 在书写化学方程式时可声明 \require{AMDcd}
语句,使用 MathJax 内置的交换图表功能,具体例子可参见下文。
其它可用的文字修饰符可参见官方文档 "Additional decorations"。
输入 | 显示 |
---|---|
\fbox{a+b+c+d} 高级框选需声明 enclose 标签 |
|
\overleftarrow{a+b+c+d} | |
\overrightarrow{a+b+c+d} | |
\overleftrightarrow{a+b+c+d} | |
\underleftarrow{a+b+c+d} | |
\underrightarrow{a+b+c+d} | |
\underleftrightarrow{a+b+c+d} | |
\overline{a+b+c+d} | |
\underline{a+b+c+d} | |
\overbrace{a+b+c+d}^{Sample} | |
\underbrace{a+b+c+d}_{Sample} | |
\overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0} | |
\underbrace{a\cdot a\cdots a}_{b\text{ times}} |
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\to | \mapsto | \underrightarrow{1℃/min} | |||
\implies | \iff | \impliedby |
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
\uparrow | \Uparrow | ||
\downarrow | \Downarrow | ||
\leftarrow | \Leftarrow | ||
\rightarrow | \Rightarrow | ||
\leftrightarrow | \Leftrightarrow | ||
\longleftarrow | \Longleftarrow | ||
\longrightarrow | \Longrightarrow | ||
\longleftrightarrow | \Longleftrightarrow |
若要对公式的某一部分字符进行字体转换,可以用 {\字体 {需转换的部分字符}}
命令,其中 \字体
部分可以参照下表选择合适的字体。一般情况下,公式默认为斜体字 。
示例中 全部大写 的字体仅大写可用。
输入 | 全字母可用 | 显示 | 输入 | 仅大写可用 | 显示 |
---|---|---|---|---|---|
\rm | 罗马体 | \mathcal | 花体(数学符号等) | ||
\it | 斜体 | \mathbb | 黑板粗体(定义域等) | ||
\bf | 粗体 | \mit | 数学斜体 | ||
\sf | 等线体 | \scr | 手写体 | ||
\tt | 打字机体 | \cal | 等同于 \mathcal |
||
\frak | 旧德式字体 | \Bbb | 等同于 \mathbb |
@lymd
\boldsymbol{\alpha}
用来表示向量或者矩阵的加粗斜体,如向量 。
转换字体十分常用,例如在积分中:
\begin{array}{cc}
\mathrm{Bad} & \mathrm{Better} \\
\hline \\
\int_0^1 x^2 dx & \int_0^1 x^2 \,{\rm d}x
\end{array}
注意比较两个式子间 与 的不同。
使用 \operatorname
命令也可以达到相同的效果,详见定义新的运算符。
使用 \bbox[底色, (可选)边距, (可选)边框 border: 框宽度 框类型 框颜色]
命令来高亮一行公式。
底色和框颜色支持详见“更改文字颜色”,边距及框宽度支持 绝对像素 px
或 相对大小 em
,框类型支持 实线 solid
或 虚线 dashed
。
$$
\bbox[yellow]{
e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
}
$$
$$
\bbox[#9ff, 5px]{ % 此处向外添加 5 像素的边距
e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
}
$$
$$
% 此处使用 0.5 倍行高作为边距,附加 2 像素的实线边框(Ctrl+Alt+Y 可见)
\bbox[#2f3542, 0.5em, border:2px solid #f1f2f6]{
\color{#f1f2f6}{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}
}
$$
在 \left
和 \right
之后加上要使用的括号来创建自动匹配高度的圆括号 (
)
,方括号 [
]
和花括号 \{
\}
。
在每个公式末尾前使用 \tag {行标}
来实现行标。
$$
f\left(
\left[
\frac{
1+\left\{x,y\right\}
}{
\left(
\frac xy + \frac yx
\right)
(u+1)
}+a
\right]^{3/2}
\right)
\tag {行标}
$$
如果你需要在不同的行显示对应括号,可以在每一行对应处使用 \left.
或 \right.
来放一个“不存在的括号”。
$$
\begin{align*}
a=&\left(1+2+3+ \cdots \right. \\
&\cdots+\left. \infty-2+\infty-1+\infty\right)
\end{align*}
$$
如果你需要将大括号里面显示的分隔符也变大,可以使用 \middle
命令,此处分别使用单竖线 |
和双竖线 \|
。
$$
\left\langle
q \; \middle|
\frac{\frac xy}{\frac uv}
\middle\| p
\right\rangle
$$
当需要使用的运算符不在 MathJax 的内置库中时,程序可能会报错或产生错误的渲染结果。此时可以使用 \operatorname
命令定义一个新的运算符号。
\begin{array}{c|c}
\mathrm{Error} & \text{Wrong rendering} \\
\hline \\
\arsinh(x) & arsinh(x) \\
\Res_{z=1} & Res_{z=1}{\frac{1}{z^2-z}=1} \\
\end{array}
使用 \operatorname{运算符}{式子}
来生成一个普通运算,或使用 \operatorname*{运算符}_{下标}^{上标}{式子}
来生成一个含上下标的自定义运算。
\begin{array}{c|c}
\text{Normal Operator} & \text{Operator with label above and below} \\
\hline \\
\scriptsize\text{\operatorname{arsinh}{x}} & \scriptsize\text{\operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1}} \\
\operatorname{arsinh}{x} & \operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1} \\
\end{array}
在 \text {文字}
中仍可以使用 $公式$
插入其它公式。
$$ f(n)= \begin{cases} n/2, & \text {if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \end{cases} $$
有四种宽度的空格可以使用: \,
、\;
、\quad
和 \qquad
,灵活使用 \text{n个空格}
也可以在任意位置实现空格。
同时存在一种负空格 \!
用来减小字符间距,一般在物理单位中使用。
重复使用 \!
命令能够实现不同元素的叠加渲染,如 和
\begin{array}{c|c}
\text{Spaces} & \text{Negative Space in Units} \\
\hline \\
\overbrace{a \! b}^{\text{\!}} \mid \underbrace{ab}_{\rm{default}} \mid \overbrace{a \, b}^{\text{\,}} \mid \underbrace{a \; b}_{\text{\;}} \mid \overbrace{a \quad b}^{\text{\quad}} \mid \underbrace{a \qquad b}_{\text{\qquad}} & \mathrm{N}\!\cdot\!\mathrm{m} \mid \mathrm{s}\!\cdot\!\mathrm{A} \mid \mathrm{kg}\!\cdot\!\mathrm{m}^2 \\
\end{array}
一些常见的公式单位可表达如下:
$$ \mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right. $$
$$ 180^\circ=\pi \ \mathrm{rad} $$
$$ \mathrm{N_A} = 6.022\times10^{23} \ \mathrm{mol}^{-1} $$
使用 \color{颜色}{文字}
来更改特定的文字颜色。
更改文字颜色需要浏览器支持 ,如果浏览器不知道你所需的颜色,那么文字将被渲染为黑色。对于较旧的浏览器(HTML4 & CSS2),以下颜色是被支持的:
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
black | grey | ||
silver | white | ||
maroon | red | ||
yellow | lime | ||
olive | green | ||
teal | auqa | ||
blue | navy | ||
purple | fuchsia |
对于较新的浏览器(HTML5 & CSS3),HEX 颜色将被支持:
输入 \color {#rgb} {text}
来自定义更多的颜色,其中 #rgb
或 #rrggbb
的 r
g
b
可输入 0-9
和 a-f
来表示红色、绿色和蓝色的纯度(饱和度)。
\begin{array}{|rrrrrrrr|}\hline
\verb+#000+ & \color{#000}{text} & & &
\verb+#00F+ & \color{#00F}{text} & & \\
& & \verb+#0F0+ & \color{#0F0}{text} &
& & \verb+#0FF+ & \color{#0FF}{text} \\
\verb+#F00+ & \color{#F00}{text} & & &
\verb+#F0F+ & \color{#F0F}{text} & & \\
& & \verb+#FF0+ & \color{#FF0}{text} &
& & \verb+#FFF+ & \color{#FFF}{text} \\
\hline\end{array}
显示:
例子:
\begin{array}{|rrrrrrrr|}\hline
\verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\
\verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\
\verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\
\verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\
\hline
\verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\
\verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\
\verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\
\verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\
\hline
\verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\
\verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\
\verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\
\verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\
\hline\end{array}
使用删除线功能必须声明 $$
符号。
在公式内使用 \require{cancel}
来允许片段删除线的显示。
声明片段删除线后,使用 \cancel{字符}
、\bcancel{字符}
、\xcancel{字符}
和 \cancelto{字符}
来实现各种片段删除线效果。
$$
\require{cancel}
\begin{array}{rl}
\verb|y+\cancel{x}| & y+\cancel{x} \\
\verb|\cancel{y+x}| & \cancel{y+x} \\
\verb|y+\bcancel{x}| & y+\bcancel{x} \\
\verb|y+\xcancel{x}| & y+\xcancel{x} \\
\verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x} \\
\verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\
\end{array}
$$
使用 \require{enclose}
来允许整段删除线的显示。
声明整段删除线后,使用 \enclose{删除线效果}{字符}
来实现各种整段删除线效果。
其中,删除线效果有 horizontalstrike
、verticalstrike
、updiagonalstrike
和 downdiagonalstrike
,可叠加使用。
$$
\require{enclose}
\begin{array}{rl}
\verb|\enclose{horizontalstrike}{x+y}| & \enclose{horizontalstrike}{x+y} \\
\verb|\enclose{verticalstrike}{\frac xy}| & \enclose{verticalstrike}{\frac xy} \\
\verb|\enclose{updiagonalstrike}{x+y}| & \enclose{updiagonalstrike}{x+y} \\
\verb|\enclose{downdiagonalstrike}{x+y}| & \enclose{downdiagonalstrike}{x+y} \\
\verb|\enclose{horizontalstrike,updiagonalstrike}{x+y}| & \enclose{horizontalstrike,updiagonalstrike}{x+y} \\
\end{array}
$$
此外, \enclose
命令还可以产生包围的边框和圆等,参见 MathML Menclose Documentation 以查看更多效果。
分别使用 circle 和 roundedbox 包围的公式 |
---|
$$
\require{enclose}
\begin{array}{c}
\enclose{circle}{f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top)} \\
\enclose{roundedbox}{f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot)} \\
\end{array}
$$
使用 box 框住所有公式 |
---|
$$
\require{enclose}
\enclose{box}{
\begin{array}{c}
f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top) \\
f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot) \\
\end{array}
}
$$
分别使用 circle 和 roundedbox 包围的公式 |
使用 box 框住所有公式 |
---|---|
此例语法可参见如何输入一个数组或表格。
在开头使用 \begin{matrix}`,在结尾使用 `\end{matrix}
,在中间插入矩阵元素,每个元素之间插入 &
,并在每行结尾处使用 \\
。
使用矩阵时必须声明 $
或 $$
符号。
$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$
在开头将 matrix
替换为 pmatrix
bmatrix
Bmatrix
vmatrix
Vmatrix
。
$ \begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} $
$ \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} $
$ \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} $
$ \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} $
$ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} $
$ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} $
matrix | pmatrix | bmatrix | Bmatrix | vmatrix | Vmatrix |
---|---|---|---|---|---|
使用 \cdots
, \ddots
, \vdots
来输入省略符号。
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n \\
1 & a_2 & a_2^2 & \cdots & a_2^n \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
1 & a_m & a_m^2 & \cdots & a_m^n \\
\end{pmatrix}
$$
详见数组使用参考。
$$
\left[
\begin{array}{cc|c}
1 & 2 & 3 \\
4 & 5 & 6 \\
\end{array}
\right]
$$
其中 cc|c
代表在一个三列矩阵中的第二和第三列之间插入分割线。
若想在一行内显示矩阵,可使用 \bigl(\begin{smallmatrix} 表达式 \end{smallmatrix}\bigr)
这是一个行中矩阵的示例 $\bigl(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\bigr)$
人们经常想要一列整齐且居中的方程式序列。使用 \begin{align}…\end{align}
来创造一列方程式,其中在每行结尾处使用 \\
。使用方程式序列无需声明公式符号 $
或 $$
。
请注意 {align}
语句是自动编号的,使用 {align*}
声明不自动编号。
\begin{align}
\sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\
& = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\
& = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\
& = \frac{73}{12}\sqrt{1-\frac{1}{73^2}} \\
& \approx \frac{73}{12}\left(1-\frac{1}{2\cdot73^2}\right) \\
\end{align}
本例中每行公式的编号续自“如何插入公式”中的自动编号公式 。
在 {align}
中后添加 &
符号来自动对齐后面的内容,可灵活组合 \text
和 \tag
语句。\tag
语句编号优先级高于自动编号。
\begin{align}
v + w & = 0 & \text{Given} \tag 1 \\
-w & = -w + 0 & \text{additive identity} \tag 2 \\
-w + 0 & = -w + (v + w) & \text{equations $(1)$ and $(2)$} \\
\end{align}
本例中第一、第二行的自动编号被 \tag
语句覆盖,第三行的编号为自动编号。
@joyphys 如何引用
\tag
标记的公式?
使用\tag{yourtag}
来标记公式,然后在\tag
之后加上\label{yourlabel}
使用 \begin{cases}…\end{cases}
来创造一组条件表达式,在每一行条件中插入 &
来指定需要对齐的内容,并在每一行结尾处使用 \\
。
$$
f(n) =
\begin{cases}
n/2, & \text{if $n$ is even} \\
3n+1, & \text{if $n$ is odd} \\
\end{cases}
$$
@Sherlockk 用 markdown+math 编辑时
\text
内需用\(equation\)
若想让文字在左侧对齐显示,则有如下方式:
$$
\left.
\begin{array}{l}
\text{if $n$ is even:} & n/2 \\
\text{if $n$ is odd:} & 3n+1 \\
\end{array}
\right\}
=f(n)
$$
在一些情况下,条件表达式中某些行的行高为非标准高度,此时使用 \\[2ex]
语句代替该行末尾的 \\
来让编辑器适配。
不适配[2ex] |
---|
$$
f(n) =
\begin{cases}
\frac{n}{2}, & \text{if $n$ is even} \\
3n+1, & \text{if $n$ is odd} \\
\end{cases}
$$
适配[2ex] |
---|
$$
f(n) =
\begin{cases}
\frac{n}{2}, & \text{if $n$ is even} \\[2ex]
3n+1, & \text{if $n$ is odd} \\
\end{cases}
$$
不适配[2ex] | 适配[2ex] |
---|---|
一个 [ex]
指一个 "X-Height",即 x 字母高度。可以根据情况指定多个 [ex]
,如 [3ex]
、[4ex]
等。
其实可以在任意换行处使用 \\[2ex]
语句,只要你觉得合适。
通常,一个格式化后的表格比单纯的文字或排版后的文字更具有可读性。
数组和表格均以 \begin{array}
开头,并在其后定义列数及每一列的文本对齐属性,c
l
r
分别代表居中、左对齐及右对齐。若需要插入垂直分割线,在定义式中插入 |
,若要插入水平分割线,在下一行输入前插入 \hline
。
与矩阵相似,每行元素间均须要插入 &
,每行元素以 \\
结尾,最后以 \ end{array}
结束数组。
使用单个数组或表格时无需声明 $
或 $$
符号。
\begin{array}{c|lcr}
n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\
\hline
1 & 0.24 & 1 & 125 \\
2 & -1 & 189 & -8 \\
3 & -20 & 2000 & 1+10i \\
\end{array}
多个数组\表格可 互相嵌套 并组成一组数组或表格。
使用嵌套前必须声明 $$
符号。
$$
\begin{array}{c} % 总表格
\begin{array}{cc} % 第一行内分成两列
\begin{array}{c|cccc} % 第一列"最小值"数组
\text{min} & 0 & 1 & 2 & 3 \\
\hline
0 & 0 & 0 & 0 & 0 \\
1 & 0 & 1 & 1 & 1 \\
2 & 0 & 1 & 2 & 2 \\
3 & 0 & 1 & 2 & 3 \\
\end{array}
&
\begin{array}{c|cccc} % 第二列"最大值"数组
\text{max} & 0 & 1 & 2 & 3 \\
\hline
0 & 0 & 1 & 2 & 3 \\
1 & 1 & 1 & 2 & 3 \\
2 & 2 & 2 & 2 & 3 \\
3 & 3 & 3 & 3 & 3 \\
\end{array}
\end{array} % 第一行表格组结束
\\
\begin{array}{c|cccc} % 第二行 Delta 值数组
\Delta & 0 & 1 & 2 & 3 \\
\hline
0 & 0 & 1 & 2 & 3 \\
1 & 1 & 0 & 1 & 2 \\
2 & 2 & 1 & 0 & 1 \\
3 & 3 & 2 & 1 & 0 \\
\end{array} % 第二行表格结束
\end{array} % 总表格结束
$$
可以使用 \begin{array} … \end{array}
和 \left\{ … \right.
来创建一个方程组:
$$
\left\{
\begin{array}{c}
a_1x+b_1y+c_1z=d_1 \\
a_2x+b_2y+c_2z=d_2 \\
a_3x+b_3y+c_3z=d_3 \\
\end{array}
\right.
$$
或使用条件表达式组 \begin{cases} … \end{cases}
来实现相同效果:
\begin{cases}
a_1x+b_1y+c_1z=d_1 \\
a_2x+b_2y+c_2z=d_2 \\
a_3x+b_3y+c_3z=d_3 \\
\end{cases}
就像输入分式时使用 \frac
一样,使用 \cfrac
来创建一个连分数。
$$
x = a_0 + \cfrac{1^2}{a_1 +
\cfrac{2^2}{a_2 +
\cfrac{3^2}{a_3 +
\cfrac{4^4}{a_4 +
\cdots
}
}
}
}
$$
不要使用普通的 \frac
或 \over
来生成连分数,看起来会很奇怪。
$$
x = a_0 + \frac{1^2}{a_1 +
\frac{2^2}{a_2 +
\frac{3^2}{a_3 +
\frac{4^4}{a_4 +
\cdots
}
}
}
}
$$
当然,你可以使用 \frac
来表达连分数的紧缩记法。
$$
x = a_0 + \frac{1^2}{a_1 +}
\frac{2^2}{a_2 +}
\frac{3^2}{a_3 +}
\frac{4^4}{a_4 +}
\cdots
$$
连分数通常都太大以至于不易排版,所以建议在连分数前后声明 $$
符号,或使用像 [a0,a1,a2,a3,…]
一样的紧缩记法。
推荐使用 Cmd Markdown 自带的各种图功能,详见 Cmd Markdown 高阶语法手册。
使用一行 \require{AMScd}
语句来允许交换图表的显示。
声明交换图表后,语法与矩阵相似,在开头使用 \begin{CD}
,在结尾使用 \ end{CD}
,在中间插入图表元素,每个元素之间插入 &
,并在每行结尾处使用 \\
。
$$
\require{AMScd}
\begin{CD}
A @>a>> B \\
@V b V V\# @VV c V \\
C @>>d> D \\
\end{CD}
$$
其中,@>>>
代表右箭头、@<<<
代表左箭头、@VVV
代表下箭头、@AAA
代表上箭头、@=
代表水平双实线、@|
代表竖直双实线、@.
代表没有箭头。
在 @>>>
的 >>>
之间任意插入文字即代表该箭头的注释文字。
$$
\require{AMDcd}
\begin{CD}
A @>>> B @>{\text{very long label}}>> C \\
@. @AAA @| \\
D @= E @<<< F \\
\end{CD}
$$
在本例中,very long label
自动延长了它所在箭头以及对应箭头的长度,因而交换图表十分适合进行化学反应式的书写。
$$
\require{AMDcd}
\begin{CD}
\rm{RCOHR^{'}SO_3Na} @>{\large\text{Hydrolysis, $\Delta$, Dil.HCl}}>> \rm{(RCOR^{'})+NaCl+SO_2+ H_2O}
\end{CD}
$$
!! 本段内容为个人翻译,可能有不准确之处 !! |
---|
These are issues that won't affect the correctness of formulas, but might make them look significantly better or worse. Beginners should feel free to ignore this advice; someone else will correct it for them, or more likely nobody will care.
现在指出的小问题并不会影响公式的正确显示,但能让它们看起来明显更好看。初学者可无视这些建议,自然会有强迫症患者替你们改掉它的,或者更可能地,不会有人在意这些细节。
Don't use \frac
in exponents or limits of integrals; it looks bad and can be confusing, which is why it is rarely done in professional mathematical typesetting. Write the fraction horizontally, with a slash:
在以 为底的指数函数、极限和积分中尽量不要使用 \frac
符号——它会使整段函数看起来很奇怪并可能产生歧义,因此它在专业数学排版中几乎从不出现。可试着横着写这些分式,中间使用斜线间隔 /
(用斜线代替分数线)。
\begin{array}{cc}
\mathrm{Bad} & \mathrm{Better} \\
\hline \\
\large e^{i\frac{\pi}2} \quad e^{\frac{i\pi}2}& \large e^{i\pi/2} \\[2ex]
\int_{-\frac\pi2}^\frac\pi2 \sin x\,dx & \int_{-\pi/2}^{\pi/2}\sin x\,dx \\
\end{array}
The |
symbol has the wrong spacing when it is used as a divider, for example in set comprehensions. Use \mid
instead:
使用 |
符号作为分隔符时会产生错误的间距,因此在需要分隔时最好使用 \mid
来代替它。
\begin{array}{cc}
\mathrm{Bad} & \mathrm{Better} \\
\hline \\
\{x|x^2\in\Bbb Z\} & \{x\mid x^2\in\Bbb Z\} \\
\end{array}
For double and triple integrals, don't use \int\int
or \int\int\int
. Instead use the special forms \iint
and \iiint
:
使用多重积分符号时,不要多次使用 \int
来声明,直接使用 \iint
来表示二重积分或 \iiint
来表示三重积分。
在表示面积分和体积分时下标建议使用 \boldsymbol{S}
和 \boldsymbol{V}
符号;对于多维函数的超体积,可使用 \idotsint
,如下面的例子所示。
\begin{array}{cc}
\mathrm{Bad} & \mathrm{Better} \\
\hline \\
\int\int_S f(x)\,dy\,dx & \iint_{\boldsymbol{S}} f(x)\,{\rm d}y\,{\rm d}x \\
\int\int\int_V f(x)\,dz\,dy\,dx & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\[3ex]
\hline \\
\text{多重积分示例} & \idotsint_{\boldsymbol{D}} f(x_1,x_2,\,\cdots\, ,x_n)\,{\rm d}x_1\cdots{\rm d}x_n
\end{array}
Use \,
, to insert a thin space before differentials; without this will mash them together:
使用多重积分时,在被积变量后加入 \,
(或在微分符号 之前)来插入一个小的间距,否则各种被积变量将会挤成一团。注意比较 的不同。
\begin{array}{cc}
\mathrm{Bad} & \mathrm{Better} \\
\hline \\
\iiint_V f(x){\rm d}z {\rm d}y {\rm d}x & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\
\end{array}
感谢您花费时间阅读这份指导手册,本手册内容可能有疏漏之处,欢迎更改指正。
更多语法请参见:Cmd Markdown 简明语法手册,Cmd Markdown 高阶语法手册。
祝您记录、阅读、分享愉快!
Drafted & Translated by Eric P.
2015-10-02